// 导入定义验证规则的模块 joi
const Joi = require('joi');

// 定义验证规则
const idSchema = Joi.number().integer().min(1).required().error(new Error('id不符合要求'));
const nameSchema = Joi.string().required().error(new Error('分类名称不符合要求'));
const aliasSchema = Joi.string().alphanum().required().error(new Error('分类别名不符合要求'));

/************新增文章分类************/
// 验证文章信息
const validateAddCate = cate => {
    // 定义对象的验证规则
    const schema = {
        // 定义 分类名称 和 分类别名 的校验规则
        name: nameSchema,
        alias: aliasSchema,
    };

    // 实施验证
    return Joi.validate(cate, schema);
}

/************根据 id 删除文章分类************/
// 验证文章信息
const validateDeleteCate = cate => {
    // 定义对象的验证规则
    const schema = {
        id: idSchema
    };

    // 实施验证
    return Joi.validate(cate, schema);
}
module.exports = {
    validateAddCate,
    validateDeleteCate
}
/************根据 id 获取文章分类************/
// 验证文章信息
const validateGetCate = cate => {
    // 定义对象的验证规则
    const schema = {
        id: idSchema
    };

    // 实施验证
    return Joi.validate(cate, schema);
}
/************根据 id 更新文章分类************/
// 验证文章信息
const validateUpdateCate = cate => {
    // 定义对象的验证规则
    const schema = {
        id: idSchema,
        name: nameSchema,
        alias: aliasSchema
    };

    // 实施验证
    return Joi.validate(cate, schema);
}


module.exports = {
    validateAddCate,
    validateDeleteCate,
    validateGetCate,
    validateUpdateCate
}
